The present invention relates generally to improvements in laser bar code scanners. More particularly, the present invention relates to methods and apparatus for synchronization of an angular position of a rotating optical assembly in a bar code scanner, as well as the determination of bar code label and location information.
Bar code scanners typically operate by using a motor and pattern mirrors to scan a light beam across a label surface and measuring the reflected light. The light beam is generated by a laser, usually a laser diode, and associated optics. The reflected light returns along the incident path and is focused onto a photodetector. The photodetector converts this collected light energy into an electrical signal. This electrical signal is processed by analog electronics, converted to a digital signal, and further processed by digital electronics, usually including a processor and associated firmware.
The processor receives a stream of label data including whatever has passed within the range of the laser or light beam, including complete and partial data. The processor, under control of programming typically stored in firmware, attempts to piece together partial data or bar code fragments (xe2x80x9cpartialsxe2x80x9d), ignore multiple reads of the same item, and perform other tasks. The information received can be ambiguous and otherwise difficult to interpret, for a number of reasons. For example, there may be several items in the scan zone or even several identical items at one time. Typically, the firmware avoids a multiple read problem by requiring a relatively long delay between good reads of identical items. This reduces scanning throughput, and is therefore presently a necessary but undesirable solution.
A better solution would be to provide the processor with knowledge of a label""s or partial""s location. This would allow the processor to determine, for example, if two recovered labels were on the same or different items. It would also allow for the possibility of improved partial reconstruction, since the processor would be aware that recovered partials were or were not adjacent to each other. Thus, it will be recognized that it will be highly advantageous to provide methods and apparatus for determining bar code label location information as a label is being scanned. A number of issues have hindered progress on collecting such information as discussed below.
The scan pattern generating characteristics of a particular scanner""s optomechanical design are determined by the position and orientation of the laser source and spinner motor, the design of the scanning spinner, and the position and orientation of the various pattern mirrors employed. Given a knowledge of these elements, the scanned laser beam""s position and orientation can be calculated as a function of spinner rotation angle and expressed, for example, in terms of the x, y and z coordinates of the intersection of the laser beam and a scan window or entrance to the scan zone and the direction cosines of the laser beam""s vector. Thus, given a knowledge of the spinner rotation angle, the scanner firmware can determine the laser origin and direction within the scan zone either through direct calculation or, preferably, through the use of a lookup table. As an example, a lookup table for the NCR 7875, a bioptic scanner with 40 distinct scan lines including top-down coverage, is given in Table 1 found at the end of the present specification. Each set of two rows gives origin and direction values for the beginning and end points of 40 distinct scan lines as a function of spinner rotation angle. Intermediate values can be calculated through linear interpolation.
The spinner rotation angle must be related to time. Typically, the spinner motor will operate at a relatively constant speed. Moreover, the motor position can be tracked by monitoring the output of Hall effect to obtain motor position reference data, other motor shaft position sensors, or other tracking mechanisms. This allows the scanner to track the rotational position of the spinner motor rotor""s poles. Unfortunately, it is difficult to mechanically relate these poles to the position of the spinner itself. The spinner can be fixed in a known position relative to the motor poles, but because of the small radii involved, small positioning errors may result in large angular errors.
Therefore, a need exists in the art for a bar code scanner which synchronizes the initial position of a spinner used in a bar code scanner with the position of the motor poles, and which combines knowledge of the initial position of the spinner with knowledge of the rotational angle of the motor poles, to determine the rotational angle of the spinner at a particular time.
A bar code scanner according to one embodiment of the present invention includes a laser for producing light which is reflected from a bar code during a scan. The light is transmitted through an optical assembly including a rotating portion, or spinner, driven by a motor. The direction and location of incidence of the light depends on the angular position of the spinner. Associated with the motor is a Hall effect or other device for producing a motor position indicating pulse or pulses. A pulse indicative of the motor being in a reference position may be used to synch a time count of elapsed time, and time stamp data is provided to a processor for interpretation to determine the angular position of the motor at the time of an occurrence of interest, typically a scan of a bar code.
The bar code scanner further includes a position reference determining mechanism which preferably includes a synchronization label attached to the scanner in a precise position. As the spinner rotates, the synchronization label is struck by one particular known scan line per revolution. As the scanner starts up, the microprocessor looks for the synchronization label, and simultaneously reads the motor pulses. By correlating the elapsed time after a synching motor pulses with the detection of the synchronization label, the bar code scanner can track the angle of deflection of the spinner from the synchronization label, thus providing an accurate angular position of the spinner throughout the operation of the scanner.
A more complete understanding of the present invention, as well as further features and advantages of the invention, will be apparent from the following Detailed Description and the accompanying drawings.